The term “streaming video” generally refers to the reception of multimedia content, such as television programming and other audiovisual content, through a communications network at a bitrate enabling presentation of the content in real time as it is received. Streaming video may be viewed live or on-demand and transmitted by, for example, a Video On Demand (VOD) provider, a remotely-controlled placeshifting device, or a pay television provider delivering television programming via cable, satellite, or Internet (OTT) distribution channels. In the case of VOD or OTT television services, the media content may be stored in a pre-encoded format and distributed to a client media receiver, such as a mobile phone or STB, over a Content Delivery Network (CDN). Comparatively, in the case of placeshifted media, a DVR, STB, or a similar device having placeshifting capabilities and located within a user's residence may encode and transmit selected streaming video to a client media receiver, such as a mobile phone or tablet, operated by the end user.
While enhancing the ease and convenience with which end users view streaming video content, media streaming services are inherently limited by resource constraints affecting network reliability and bandwidth availability. When network bandwidth becomes overly constrained during a streaming video session, latencies may occur resulting in prolonged buffering and other delays in the presentation of streaming video content. Network latencies can also result in sluggish response times in implementing user-issued commands during a streaming video session, such as channel change commands issued by a user when streaming OTT television content.
Various ABR streaming techniques are now employed to enhance streaming performance despite variances in network bandwidth and other constraining factors. Generally, ABR techniques actively adjust encoding parameters (e.g., image resolution and video frame rate) in response to variations in network bandwidth, playback device resources, and the like. ABR techniques remain limited, however, and are often relatively slow in converging to an optimized bitrate in some instances. Additionally, existing ABR techniques typically do little to anticipate or prevent undesirably high transient processor loads or “processor hit,” which can reduce the overall stability of the streaming session. Processor hit may be particularly problematic when a streaming media server, such as a consumer placeshifting device, engages in a multiclient streaming session with multiple client receivers. During such a multiclient streaming session, the server CPU may be required to perform computationally-intensive tasks related to concurrently encoding, packetizing, and transmitting separate video-containing media streams to two or more client media receivers, as well as responding to user commands received during the multiclient streaming session.
There thus exists an ongoing demand for systems, methods, and devices capable of optimizing streaming bitrate of video-containing media content in a more efficient manner, while decreasing the likelihood of undesirably high transient processor loads and other conditions reducing the stability of streaming video sessions. These and other desirable features and characteristics will become apparent from the subsequent detailed description and the appended claims, taken in conjunction with the accompanying drawings and this background section.